# 角色控制脚本，继承自CharacterBody2D节点
extends CharacterBody2D

# 在节点准备就绪时获取AnimatedSprite2D子节点的引用
@onready var animated_sprite = $AnimatedSprite2D
# 导出速度变量，可在Godot编辑器中调整
@export var SPEED = 300.0

# 物理处理函数，每帧调用一次，用于处理角色移动和动画
func _physics_process(delta: float) -> void:
	# 获取玩家输入的方向向量（-1到1之间的值）
	# 参数分别对应：左、右、上、下方向键
	var direction = Input.get_vector("ui_left", "ui_right","ui_up", "ui_down")
	# 根据方向向量和速度设置角色的移动速度
	velocity = direction * SPEED
	# 执行移动并处理碰撞（自动处理与其他物理体的碰撞）
	move_and_slide()
	# 根据移动方向设置对应的动画
	# 首先检查水平方向是否有输入
	if direction.x != 0:
		# 向左移动
		if direction.x < 0:
			animated_sprite.animation = "left"
		# 向右移动
		else:
			animated_sprite.animation = "right"
	# 如果水平方向没有输入，检查垂直方向
	elif direction.y != 0:
		# 向上移动
		if direction.y < 0:
			animated_sprite.animation = "up"
		# 向下移动
		else:
			animated_sprite.animation = "down"
	# 如果没有任何方向输入（松开所有按键）
	else:
		# 显示默认动画
		animated_sprite.animation = "default"
